package negocio;
import java.math.*;


public class Aritmetic
{
	public static double pi = Math.PI;
	public static double e = Math.E;

	/*=============================Opera��es matem�ticas simples=================*/
	
	//M�todo que realiza soma
	public static double soma(double a, double b)
	{	
		return a+b;
	}
	//M�todo que realiza subtra��o	
	public static double sub(double a, double b)
	{
		return a-b;
	}
	//M�todo que realiza multiplica��o
	public static double mult(double a, double b)
	{	
		return a*b;
	}
	//M�todo que realiza divis�o
	public static double div(double a, double b) throws IllegalArgumentException
	{
		if(b!=0)
			return a/b;
		else
			throw new IllegalArgumentException ("Impossivel dividir por zero");
	}
	//M�todo que realiza potencia��o
	public static double pot(double a, double b)
	{
		return Math.pow(a, b);
	}
	//M�todo que realiza opera��o logatima natural;
	public static double ln(double a)
	{
		return Math.log(a);
	}
	//M�todo que realiza raiz quadrada na base 2;
	public static double raiz(double a)
	{
		return Math.sqrt(a);
	}
	//M�todo que realiza exponecia��o natural e^x
	public static double exp(double a)
	{
		return Math.exp(a);
	}
	
	/*=======================Utilidades matem�ticas - outros====================*/
	
	//M�todo que realiza invers�o de sinal
	public static double chs(double a)
	{
		return -a;
	}
	//M�todo que c�lcula fatorial de um n�mero
	public static long fat(double a) throws IllegalArgumentException
	{
		if(a>=1)
		{
			long cont;
			long fatorial = 1;
			
			for(cont=(long)a; cont>1; cont--)
			{
				fatorial *= cont;
			}
			return fatorial;
		}
		else
			throw new IllegalArgumentException ("Impossível o cálculo do fatorial");
	}
	//M�todo que c�lcula porcentagem
	public static double pcent(double a, double b)throws IllegalArgumentException
	{
		return (b*a/100);
	}
	
	
	/*=========================Atalhos matem�ticos===============================*/

	//M�todo atalho para c�lculo de x^2
	public static double quad(double a)
	{
		return a*a;
	}
	//M�todo atalho para c�lculo de 10^x
	public static double pot10(double a)
	{
		return pot(10, a);
	}
	//M�todo que realiza calculo do logaritmo na base 10
	public static double log10(double a)
	{
		return Math.log10(a);
	}
	
}
